package com.youshang520i.nacosserviceconsume.service.impl;

import com.youshang520i.nacosserviceconsume.service.ConsumeService;
import com.youshang520i.nacosserviceconsume.service.TransactionConsumeService;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;


/**
 * @author youshang
 */
@Log4j2
@Service
public class TransactionConsumeServiceImpl implements TransactionConsumeService {

    @Autowired
    private ConsumeService consumeService;


    /**
     * 当num=5的时候，本地事务起作用，在第二个判断的时候跳出方法，没有调用成功另外一台服务，本地事务达到回滚效果
     * @param num
     * @return
     */
//    @Transactional
//    @Override
//    public boolean tIndex(Integer num) {
//
//        if (num <= 5){
//            num = ++ num  ;
//        }
//
//        if (num >= 6){
//            throw new RuntimeException();
//        }
//
//        String index = consumeService.index("测试分布式事务！！！，目前得到的结果： " + num);
//
//        log.info("index:"+ index);
//        return true;
//    }


    @Transactional
    @Override
    public boolean tIndex(Integer num) {

        if (num <= 5){
            num = ++ num  ;
        }

        String index = consumeService.index("测试分布式事务！！！，目前得到的结果： " + num);

        if (num >= 6){
            throw new RuntimeException();
        }
        log.info("index:"+ index);
        return true;
    }
}
